﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class TempOdGiDummySubEntityTraits : OdGiSubEntityTraits
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public TempOdGiDummySubEntityTraits(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.TempOdGiDummySubEntityTraits_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(TempOdGiDummySubEntityTraits obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.deletePD_TempOdGiDummySubEntityTraits(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public new virtual void setColor(ushort arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setColor(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setTrueColor(OdCmEntityColor arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setTrueColor(this.swigCPtr, OdCmEntityColor.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLayer(OdDbStub arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setLayer(this.swigCPtr, OdDbStub.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineType(OdDbStub arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setLineType(this.swigCPtr, OdDbStub.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSelectionMarker(IntPtr arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setSelectionMarker(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setFillType(OdGiFillType arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setFillType(this.swigCPtr, (int)arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setFillPlane(OdGeVector3d arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setFillPlane__SWIG_0(this.swigCPtr, OdGeVector3d.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setFillPlane()
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setFillPlane__SWIG_1(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineWeight(LineWeight arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setLineWeight(this.swigCPtr, (int)arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineTypeScale(double arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setLineTypeScale__SWIG_0(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setLineTypeScale()
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setLineTypeScale__SWIG_1(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setThickness(double arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setThickness(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setPlotStyleName(PlotStyleNameType arg0, OdDbStub arg1)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setPlotStyleName__SWIG_0(this.swigCPtr, (int)arg0, OdDbStub.getCPtr(arg1));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setPlotStyleName(PlotStyleNameType arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setPlotStyleName__SWIG_1(this.swigCPtr, (int)arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMaterial(OdDbStub arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setMaterial(this.swigCPtr, OdDbStub.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMapper(OdGiMapper arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setMapper(this.swigCPtr, OdGiMapper.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setVisualStyle(OdDbStub arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setVisualStyle(this.swigCPtr, OdDbStub.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setTransparency(OdCmTransparency arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setTransparency(this.swigCPtr, OdCmTransparency.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDrawFlags(uint arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setDrawFlags(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSelectionGeom(bool arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setSelectionGeom(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setShadowFlags(OdGiSubEntityTraits.ShadowFlags arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setShadowFlags(this.swigCPtr, (int)arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSectionable(bool arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setSectionable(this.swigCPtr, arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setSelectionFlags(OdGiSubEntityTraits.SelectionFlags arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_setSelectionFlags(this.swigCPtr, (int)arg0);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual ushort color()
		{
			ushort result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_color(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdCmEntityColor trueColor()
		{
			OdCmEntityColor result = new OdCmEntityColor(GlobalsPINVOKE.TempOdGiDummySubEntityTraits_trueColor(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbStub layer()
		{
			IntPtr intPtr = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_layer(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbStub lineType()
		{
			IntPtr intPtr = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_lineType(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiFillType fillType()
		{
			OdGiFillType result = (OdGiFillType)GlobalsPINVOKE.TempOdGiDummySubEntityTraits_fillType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool fillPlane(OdGeVector3d arg0)
		{
			bool result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_fillPlane(this.swigCPtr, OdGeVector3d.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual LineWeight lineWeight()
		{
			LineWeight result = (LineWeight)GlobalsPINVOKE.TempOdGiDummySubEntityTraits_lineWeight(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual double lineTypeScale()
		{
			double result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_lineTypeScale(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual double thickness()
		{
			double result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_thickness(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual PlotStyleNameType plotStyleNameType()
		{
			PlotStyleNameType result = (PlotStyleNameType)GlobalsPINVOKE.TempOdGiDummySubEntityTraits_plotStyleNameType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbStub plotStyleNameId()
		{
			IntPtr intPtr = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_plotStyleNameId(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdDbStub material()
		{
			IntPtr intPtr = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_material(this.swigCPtr);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiMapper mapper()
		{
			IntPtr intPtr = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_mapper(this.swigCPtr);
			OdGiMapper result = (intPtr == IntPtr.Zero) ? null : new OdGiMapper(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void addLight(OdDbStub arg0)
		{
			GlobalsPINVOKE.TempOdGiDummySubEntityTraits_addLight(this.swigCPtr, OdDbStub.getCPtr(arg0));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdCmTransparency transparency()
		{
			OdCmTransparency result = new OdCmTransparency(GlobalsPINVOKE.TempOdGiDummySubEntityTraits_transparency(this.swigCPtr), true);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual uint drawFlags()
		{
			uint result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_drawFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool selectionGeom()
		{
			bool result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_selectionGeom(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiSubEntityTraits.ShadowFlags shadowFlags()
		{
			OdGiSubEntityTraits.ShadowFlags result = (OdGiSubEntityTraits.ShadowFlags)GlobalsPINVOKE.TempOdGiDummySubEntityTraits_shadowFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool sectionable()
		{
			bool result = GlobalsPINVOKE.TempOdGiDummySubEntityTraits_sectionable(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdGiSubEntityTraits.SelectionFlags selectionFlags()
		{
			OdGiSubEntityTraits.SelectionFlags result = (OdGiSubEntityTraits.SelectionFlags)GlobalsPINVOKE.TempOdGiDummySubEntityTraits_selectionFlags(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private object locker = new object();

		private HandleRef swigCPtr;
	}
}
